using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
using Gratamira.AccesoDato;
using System.Data;


namespace Gratamira.CapaNegocio
{
    public class Unidad
    {
        #region Atributos
        private string _Nombre;
        private string _UnidadID;
        private string _UsuarioCreacion;
        private string _FechaCreacion;
        private string _UsuarioModificacion;
        private string _FechaModificacion;
        private bool _Modificada;
        #endregion

        #region Constructores
        public Unidad()
        {

        }

        public Unidad(string ptipoMovID)
        {
            UnidadID = ptipoMovID;
            leerUnidades();
        }
        #endregion

        #region Propiedades
        public string UnidadID
        {
            get
            {
                return _UnidadID;
            }
            set
            {
                _UnidadID = value;
            }
        }

        public string Nombre
        {
            get
            {
                return _Nombre;
            }
            set
            {
                if (_Nombre != value)
                {
                    Modificada = true;
                }
                _Nombre = value;
            }
        }

        public string UsuarioCreacion
        {
            get
            {
                return _UsuarioCreacion.Trim();
            }
            set
            {
                _UsuarioCreacion = value;
            }
        }

        public string UsuarioModificacion
        {
            get
            {
                return _UsuarioModificacion.Trim();
            }
            set
            {
                _UsuarioModificacion = value;
            }
        }

        public string FechaCreacion
        {
            get
            {
                return _FechaCreacion;
            }
            set
            {
                _FechaCreacion = value;
            }
        }

        public string FechaModificacion
        {
            get
            {
                return _FechaModificacion;
            }
            set
            {
                _FechaModificacion = value;
            }
        }

        public bool Modificada
        {
            get
            {
                return _Modificada;
            }
            set
            {
                _Modificada = value;
            }
        }

        #endregion

        #region Metodos
        public bool insertarUnidad()
        {
            accesoDatos p = new accesoDatos();

            string tSql = "INSERT INTO Unidad " +
                            "(UnidadID, Nombre, " +
                            "CodUsuCre, FecHorCre, UsuUltMod, FecUltMod) VALUES ";

            tSql += "  ('" + UnidadID + "','" + Nombre + "'";
            tSql += ",'" + UsuarioCreacion + "', getdate() ,'" + UsuarioModificacion + "', getdate())";

            p.ejecutarSQL(tSql, "Gratamira");
            Modificada = false;
            return true;
        }

        public void eliminarUnidad(string pUnidadID)
        {
            accesoDatos p = new accesoDatos();
            p.ejecutarSQL("DELETE FROM unidad WHERE unidadID = '" + pUnidadID + "'", "Gratamira");
        }

        public DataTable leerTodasUnidades()
        {
            string strSql;
            strSql = "SELECT * FROM unidad ORDER BY unidadID";

            DataTable dt = new DataTable();
            accesoDatos p = new accesoDatos();
            dt = p.leerDatosSQL(strSql, "Gratamira");
            Modificada = false;
            return dt;
        }


        public void leerUnidades()
        {
            DataRow fila;

            string strSql;
            strSql = "SELECT * FROM unidad WHERE UnidadID = '" + UnidadID + "'ORDER BY unidadID";

            DataTable dt = new DataTable();
            accesoDatos p = new accesoDatos();
            dt = p.leerDatosSQL(strSql, "Gratamira");

            fila = dt.Rows[0];

            Nombre = fila["Nombre"].ToString();
            UsuarioCreacion = fila["CodUsuCre"].ToString();
            UsuarioModificacion = fila["UsuUltMod"].ToString();
            FechaCreacion = fila["FecHorCre"].ToString();
            FechaModificacion = fila["FecUltMod"].ToString();
            Modificada = false;

        }

        public DataTable leerUnidades(string valor, int tipo)
        {
            string strSql = "SELECT UnidadID, Nombre FROM Unidad ";

            switch (tipo)
            {
                case 0:
                    strSql += "WHERE Nombre like '%" + valor + "%' ";
                    break;
                case 1:
                    strSql += "WHERE UnidadID  = '" + valor + "' ";
                    break;
            }
            strSql += "ORDER BY UnidadID";


            DataTable dt = new DataTable();
            accesoDatos p = new accesoDatos();
            dt = p.leerDatosSQL(strSql, "Gratamira");
            Modificada = false;
            return dt;
        }

        public void actulizarUnidad()
        {
            FechaModificacion = DateTime.Now.ToString("MM/dd/yyyy HH:mm");
            accesoDatos p = new accesoDatos();
            string tSql = "UPDATE unidad SET nombre = '" + Nombre + "'" +
                          ", UsuUltMod = '" + UsuarioModificacion + "'" +
                          ", FecUltMod = '" + FechaModificacion + "'" +
                          " WHERE unidadID = '" + UnidadID + "'";
            p.ejecutarSQL(tSql, "Gratamira");
        }
        #endregion
    }
}
